package com.bringway.p2p.service;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.springframework.stereotype.Service;

import net.sf.json.JSONObject;

/*
 * 
 * @author fan
 * @className MenuCUDService
 * @description 菜单的增删改业务逻辑接口
 * @date 2015年12月14日下午6:48:16
 */

public interface MenuCUDService {
	/**
	 * @方法名称:addMenu
	 * @方法描述:添加菜单
	 * @author fan
	 * @date 2015年12月14日下午6:51:18
	 * @param parms
	 * @return
	 */
	public boolean addMenu(JSONObject parms);

	/**
	 * @方法名称:deleteMenu
	 * @方法描述:删除菜单
	 * @author fan
	 * @date 2015年12月15日下午3:20:52
	 * @param parms
	 */
	public boolean deleteMenu(JSONObject parms);

	/**
	 * @方法名称:updateMenu
	 * @方法描述:修改菜单
	 * @author fan
	 * @date 2015年12月16日上午9:33:20
	 * @param parms
	 * @return
	 */
	public boolean updateMenu(JSONObject parms);

	/**
	 * @方法名称:queryUser
	 * @方法描述:查询User
	 * @author fan
	 * @date 2015年12月22日上午10:53:03
	 * @param parms
	 */
	public Map<String,Object> queryUser(JSONObject parms);
	
	/**
	 * @方法名称:queryMenuIdsByUserId
	 * @方法描述:查询指定user下的菜单id集合
	 * @author fan
	 * @date 2015年12月23日下午7:14:52
	 * @param params
	 * @return
	 */
	public List<String> queryMenuIdsByUserId(JSONObject params);
	
	/**
	 * @方法名称:saveMenuUserLink
	 * @方法描述:保存最新的Menu和user之间的关系
	 * @author fan
	 * @date 2015年12月24日下午5:18:17
	 * @param parms
	 * @return
	 */
	public boolean saveMenuUserLink(JSONObject parms);
	
	/**
	 * 
	 * @方法名称:listMenuByParent
	 * @方法描述:查询菜单
	 * @author fan
	 * @date 2015年12月31日上午9:36:00
	 * @param params
	 * @return
	 */
	public List<Map<String, Object>> listMenuByParent(JSONObject params);
	
	/**
	 * @方法名称: queryMenuRoleList
	 * @方法描述: 查询角色菜单
	 * @时间:2016年2月25日下午6:52:30
	 * @author:邵jing
	 * @param params
	 * @return
	 */
	public List queryMenuRoleList(JSONObject params);
	
	/**
	 * 
	 * @方法名称: MenuRoleRelatinShipSave
	 * @方法描述: 添加角色菜单关系
	 * @时间:2016年2月25日下午7:20:11
	 * @author:邵jing
	 * @param params
	 * @return
	 */
	public boolean MenuRoleRelatinShipSave(JSONObject params);
	
//	/**
//	 * @方法名称:deleteMenuUserLink
//	 * @方法描述:删除Menu和user之间的关系--根据userId
//	 * @author fan
//	 * @date 2015年12月24日下午6:36:30
//	 * @param parms
//	 * @return
//	 */
//	public boolean deleteMenuUserLink(JSONObject parms);
	
	
	/**
	 * @param params 查询系统菜单整颗树
	 * @return
	 */
	List<Map<String, Object>> queryTreeMenuList(JSONObject params);
}
